package novel.mzx.com.fragment;

import android.content.Context;
import android.content.Intent;
import android.os.CountDownTimer;
import android.support.annotation.NonNull;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;
import android.support.v4.view.ViewPager;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;

import com.bumptech.glide.Glide;
import com.gyf.immersionbar.ImmersionBar;
import com.lzy.okgo.OkGo;
import com.lzy.okgo.callback.StringCallback;
import com.lzy.okgo.model.Response;
import com.youth.banner.Banner;
import com.youth.banner.BannerConfig;
import com.youth.banner.Transformer;
import com.youth.banner.listener.OnBannerListener;
import com.youth.banner.loader.ImageLoader;

import java.util.ArrayList;
import java.util.List;

import butterknife.BindView;
import novel.mzx.com.R;
import novel.mzx.com.activity.MyClassInfoActivity;
import novel.mzx.com.activity.SearchActivity;
import novel.mzx.com.base.BaseFragment;
import novel.mzx.com.bean.BannerBean;
import novel.mzx.com.http.Api;
import novel.mzx.com.utils.JSONUtils;
import novel.mzx.com.views.RoundImageView;


public class HomeFragment extends BaseFragment {

    @BindView(R.id.keyi)
    LinearLayout keyi;
    @BindView(R.id.keer)
    LinearLayout keer;

    @BindView(R.id.banner)
    Banner banner;
    private List<String> imgsLists = new ArrayList<>();
    private List<String> titleLists = new ArrayList<>();


    @Override
    public int getLayoutResID() {

        return R.layout.fragment_home;
    }

    @Override
    public void initView(View view) {
        super.initView(view);
        ImmersionBar.with(this).titleBar(R.id.toolbar).keyboardEnable(true).init();
        ImmersionBar.with(this).keyboardEnable(false).statusBarDarkFont(true, 0.2f).navigationBarColor(R.color.btn3).init();


        getBannerData();

        keyi.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(getActivity(), MyClassInfoActivity.class);
                startActivity(intent);
            }
        });
        keer.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(getActivity(), SearchActivity.class);
                startActivity(intent);
            }
        });

    }

    private void getBannerData() {
        OkGo.<String>get(Api.mainHost+Api.listNewsInfoUrl)
                .execute(new StringCallback() {
                    @Override
                    public void onSuccess(Response<String> response) {
                        Log.e("公告",response.body());

                        BannerBean bannerBean = JSONUtils.parserObject(response.body(),BannerBean.class);
                        int code = bannerBean.getResultCode();
                        if(code == 200){

                            List<BannerBean.Data> data = bannerBean.getData();
                            if(data.size() > 0){
                                initBanner(data);
                            }
                        }
                    }

                    @Override
                    public void onError(Response<String> response) {
                        super.onError(response);

                    }
                });
    }

    private void initBanner(List<BannerBean.Data> data) {
        titleLists.clear();
        imgsLists.clear();
        for (int i = 0; i < data.size(); i++) {
            imgsLists.add(Api.mainImgHost+data.get(i).getNewsImg());
            titleLists.add(data.get(i).getNewsTitle());
        }
//设置banner样式
        banner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR);

        //设置图片加载器
        banner.setImageLoader(new GlideImageLoader());
        //设置图片集合
        banner.setImages(imgsLists);
        //设置banner动画效果
        banner.setBannerAnimation(Transformer.Default);
        //设置标题集合（当banner样式有显示title时）
        banner.setBannerTitles(titleLists);
        //设置自动轮播，默认为true
        banner.isAutoPlay(true);
        //设置轮播时间
        banner.setDelayTime(3000);
        //设置指示器位置（当banner模式中有指示器时）
        banner.setIndicatorGravity(BannerConfig.CENTER);
        //banner设置方法全部调用完毕时最后调用
        banner.start();

        banner.setOnBannerListener(new OnBannerListener() {
            @Override
            public void OnBannerClick(int position) {


            }
        });

    }

    public class GlideImageLoader extends ImageLoader {
        @Override
        public void displayImage(Context context, Object path, ImageView imageView) {
            /**
             注意：
             1.图片加载器由自己选择，这里不限制，只是提供几种使用方法
             2.返回的图片路径为Object类型，由于不能确定你到底使用的那种图片加载器，
             传输的到的是什么格式，那么这种就使用Object接收和返回，你只需要强转成你传输的类型就行，
             切记不要胡乱强转！
             */


            //Glide 加载图片简单用法
            Glide.with(context).load(path).into(imageView);


        }

    }




}
